/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import sys.bean.CidadeBean;
import sys.bean.EstadoBean;
import sys.utils.ConexaoMySql;

/**
 *
 * @author Administrador
 */
public class CidadeDao {

    public List<CidadeBean> listaCidades(int idEstado) throws SQLException {
        List<CidadeBean> listCidades = new ArrayList<>();
        Connection con = ConexaoMySql.getConection();

        String sql = "SELECT c.id AS idCidade, UPPER(c.nome) AS nome , c.uf, e.id AS idEstado \n"
                + "FROM cidade c \n"
                + "INNER JOIN estado e on (c.estado_id = e.id) \n"
                + "WHERE e.id LIKE '%"+idEstado+"%'";

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            CidadeBean cidade = new CidadeBean();
            EstadoBean estado = new EstadoBean();

            cidade.setIdCidage(rs.getInt("idCidade"));
            cidade.setNome(rs.getString("nome"));
            cidade.setUf(rs.getString("uf"));
            estado.setIdEstado(rs.getInt("idEstado"));
            cidade.setEstado(estado);

            listCidades.add(cidade);
        }

        stmt.close();
        con.close();

        return listCidades;
    }

    /*
     método utilizado para retornar o código da cidade com base no código do municipio obtido do SPAC
     */
    public static int getCidade(int codMunicipio) throws SQLException {
        int codigo = 0;
        Connection con = ConexaoMySql.getConection();

        String sql = "SELECT c.id AS IDCIDADE \n"
                + "from cidade c \n"
                + "WHERE c.cod_municipio = '" + codMunicipio + "'";

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            codigo = rs.getInt("IDCIDADE");
        }

        stmt.close();
        con.close();
        return codigo;
    }

}
